package com.gitee.sparta.common;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 系统错误码
 *
 * @author zyrea
 * @since v 0.0.1
 */

@Getter
@AllArgsConstructor
public enum SpartaErrorEnum {

    /** 系统异常 **/
    SYSTEM_ERROR(11000, "系统异常"),
    /** 未知异常 **/
    UNKNOWN_ERROR(11001, "未知异常"),
    /** 重试次数不能小于或等于0 **/
    RETRY_COUNT_VALID(11002, "重试次数不能小于或等于0"),
    /** 重试次数 0 - 20 范围之间 **/
    RETRY_COUNT_VALUE_SCOPE(11003, "重试次数 0 - 20 范围之间"),
    /** 续期次数 0 - 30 范围之间 **/
    RENEW_COUNT_VALUE_SCOPE(11004, "续期次数 0 - 30 范围之间"),
    /** 重试间隔时间不能小于 **/
    RETRY_COUNT_VALUE_VALID(11005, "重试间隔时间不能小于 " + SpartaConstant.RETRY_INTERVAL + "ms"),
    /** 续签间隔时间不能小于 **/
    RENEW_COUNT_VALUE_VALID(11006, "续签间隔时间不能小于 " + SpartaConstant.RENEW_INTERVAL + "ms"),
    /** systemName 不能为 null **/
    SYSTEM_NAME_NOT_EMPTY(11007, "systemName 不能为 null"),
    /** tabName 不能为 null **/
    TAB_NAME_NOT_EMPTY(11008, "tabName 不能为 null"),
    /** isolation 不能为 null **/
    ISOLATION_NOT_EMPTY(11009, "isolation 不能为 null"),
    /** topic 不能为 null **/
    TOPIC_NAME_NOT_EMPTY(11010, "topic 不能为 null"),
    /** 分段消费中时间段不能为 null **/
    SEGMENT_NOT_EMPTY(11011, "分段消费中时间段不能为 null"),
    /** 消息序列化失败 **/
    SERIAL_ERROR(11012, "消息序列化失败."),
    /** 请配置 sparta.redisson 属性! **/
    NOT_FOUND_REDISSON_CONFIG(11013, "请配置 sparta.redisson 属性!"),
    /** metaId 不能为 null **/
    META_ID_NOT_EMPTY(11014, "metaId 不能为 null"),
    /** 延迟时间必须大于0 **/
    NUMBER_OF_LESS_EQ_ZERO(11015, "延迟时间必须大于 0"),
    /** TOPIC 已经存在. **/
    TOPIC_EXIST(11016, "TOPIC 已经存在."),
    /** topic 只能是由字母、数字、下划线组成 **/
    TOPIC_NOT_REQUIREMENTS(11017, "topic 只能是由字母、数字、下划线组成"),
    ;

    private final int code;
    private final String message;

}
